//package br.com.virtual.base.controller.cadastro;
//
//import java.io.Serializable;
//import java.util.Collections;
//import java.util.List;
//
//import javax.annotation.PostConstruct;
//import javax.ejb.EJB;
//import javax.faces.application.FacesMessage;
//import javax.faces.bean.ManagedBean;
//import javax.faces.bean.ViewScoped;
//import javax.faces.context.FacesContext;
//import javax.faces.event.ActionEvent;
//
//import br.com.virtual.base.enums.ActionFormEnum;
//import br.com.virtual.base.exceptions.VirtualValidationException;
//import br.com.virtual.cadastrar.model.Cliente;
//import br.com.virtual.cadastrar.service.ClienteService;
//
//@ManagedBean
//@ViewScoped
//public class ClienteMB implements Serializable {
//
//	private static final long serialVersionUID = 1L;
//	private Cliente cliente;
//	private List<Cliente> clientes;
//	private List<Cliente> clientesAtivos;
//
//	private ActionFormEnum stateForm = ActionFormEnum.CREATE;
//
//	@EJB
//	private ClienteService clienteService;
//
//	public ClienteMB() {
//
//	}
//
//	public ClienteService getClienteService() {
//		return clienteService;
//	}
//
//	public void setClienteService(ClienteService clienteService) {
//		this.clienteService = clienteService;
//	}
//
//	@PostConstruct
//	private void init() {
//
//		cliente = new Cliente();
//		// cliente.setUsuario(new Usuario());
//		// cliente.getUsuario().setTipoUsuario(TipoUsuario.CLIENTE);
//		clientes = null;
//		stateForm = ActionFormEnum.CREATE;
//	}
//
//	public void save() {
//
//		try {
//
//			if (stateForm.equals(ActionFormEnum.CREATE))
//				clienteService.create(cliente);
//			else if (stateForm.equals(ActionFormEnum.UPDATE))
//				clienteService.update(cliente);
//
//			generateFacesMessage("Operação realizada com sucesso.",
//					FacesMessage.SEVERITY_INFO);
//
//		} catch (VirtualValidationException e) {
//
//			for (String s : e.getErros()) {
//				generateFacesMessage(s, FacesMessage.SEVERITY_ERROR);
//			}
//
//		}
//
//		init();
//	}
//
//	public void edit() {
//		stateForm = ActionFormEnum.UPDATE;
//	}
//
//	public String delete(ActionEvent evento) {
//
//		try {
//			clienteService.delete(cliente);
//			generateFacesMessage("Item excluido com sucesso.",
//					FacesMessage.SEVERITY_INFO);
//
//		} catch (VirtualValidationException e) {
//
//			for (String s : e.getErros()) {
//				generateFacesMessage(s, FacesMessage.SEVERITY_ERROR);
//			}
//
//		}
//		init();
//		return "";
//	}
//
//	private void generateFacesMessage(String message,
//			FacesMessage.Severity severity) {
//
//		FacesContext.getCurrentInstance().addMessage(null,
//				new FacesMessage(severity, message, ""));
//	}
//
//	/*
//	 * GETTERS AND SETTERS
//	 */
//	public Cliente getCliente() {
//		return cliente;
//	}
//
//	public void setCliente(Cliente cliente) {
//		this.cliente = cliente;
//	}
//
//	public List<Cliente> getClientes() {
//		if (clientes == null) {
//			clientes = clienteService.getList();
//			Collections.sort(clientes);
//		}
//
//		return clientes;
//	}
//
//	public void setClientes(List<Cliente> listCat) {
//		this.clientes = listCat;
//	}
//
//	public List<Cliente> getClientesAtivos() {
//
//		if (clientesAtivos == null) {
//			clientesAtivos = clienteService.getListAtivo();
//			Collections.sort(clientesAtivos);
//		}
//		return clientesAtivos;
//	}
//
//	public void setClientesAtivos(List<Cliente> clientesAtivos) {
//		this.clientesAtivos = clientesAtivos;
//	}
//
//	public ActionFormEnum getStateForm() {
//		return stateForm;
//	}
//
//	public void setStateForm(ActionFormEnum stateForm) {
//		this.stateForm = stateForm;
//	}
//
//}
